Software piracy, the unauthorized copying of programs, has been an issue for software creators since the advent of the microprocessor. Software vendors have dealt with the piracy issue by various means. One method for protecting software involves copy protection.
Some examples of copy protection solutions use measures such as registration or serialization (serial number) of software, hard to copy computer readable media (e.g., copy protected floppy disk or CD-ROM), passive hardware tokens, active hardware tokens, smart cards, and on-board copy protection chips. These approaches, however, may be circumvented by accessing the address and data paths of a computer directly, and using information collected there to recreate the original unencrypted executable code.
Another approach to software protection involves a crypto microprocessor. A crypto microprocessor is a plug-in replacement device for the conventional microprocessor, but is capable of executing encrypted instructions. An encrypted program may execute only on a designated computer system incorporating a crypto microprocessor which decrypts the program according to a specific key or algorithm. Crypto microprocessors can be built at reasonable cost, since the translation circuitry is not unduly complex. In addition, the method does not interfere with computer user's customary practices. For example, the user is able to copy his software for backup purposes.
Despite all these innovations, the software piracy problem continues to plague the software industry.